package com.xja.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xja.model.dto.ArticlePublishDTO;
import com.xja.model.entity.Article;
import com.xja.model.vo.resp.ArticleDetailVO;
import com.xja.model.vo.resp.ArticleItemVO;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 文章表 服务类
 * </p>
 *
 * @author caijg
 
 */
public interface IArticleService extends IService<Article> {

    void publish(ArticlePublishDTO articlePublishDTO);

    /**
     * 获取文章列表
     * @return 文章列表
     */
    List<ArticleItemVO> getList(String searchText);

    /**
     * 获取文章详情
     * @param id 文章id
     * @return 文章详情
     */
    ArticleDetailVO getDetail(Long id);

    /**
     * 检查用户是否点赞
     * @param articlId 文章id
     * @return 是否点赞
     */
    Boolean checkLikeStatus(Long articlId);

    /**
     * 用户点赞/取消点赞
     * @param articlId 文章id
     * @return 点赞结果
     */
    Boolean like(Long articlId);

    /**
     * 浏览量+1
     * @param articleId 文章id
     */
    void views(Long articleId);

    /**
     * 获取用户喜欢的文章列表
     * @return 用户喜欢的文章列表
     */
    List<Article> getMyLoveArticle();

    /**
     * 获取我的文章
     * @return 我的文章
     */
    List<Article> getMyArticle();

    /**
     * 删除文章
     * @param ids 要删除的文章id列表
     * @return 删除结果
     */
    Boolean delete(ArrayList<String> ids);
}
